汇编OF溢出位的解释!溢出条件是什么?到底是怎么造成溢出的? |
您所在的位置:网站首页 › 汇编语言cf of怎么确定 › 汇编OF溢出位的解释!溢出条件是什么?到底是怎么造成溢出的? |
首先给一段说明: OF(Overflow Flag)溢出位:当运算的结果超过字长所能表示的范围时,产生“溢出”。此时,OF置1记为OV(Overflow)。否则,OF清0,记为NV(Non Overflow),溢出产生的原因是由于同号数相加或异号数相减。
第一: 比如你当前的运算的1+1, 那么正确的结果应该是2,但是你的命令1+1=-1.那么就溢出了,这就是同号数相加溢出、 异号数相加的溢出是指:-1-2 ,正确的结果应该是:-3,但是你的命令却是:-1-2=3,那么依旧是溢出
第二: 二进制中所能表达的范围为:-128——127 如果运算结果超出这个值也算溢出,不管有符号没有符号! 如: 无符号数:F0H(240) + 78H(120) = 168H(360) 有符号数:F0H(-16) + 78H(120) = 68H(104) 360超出了8位数所能表示的范围-128~127 104没有超出8位数所能表示的范围,因此有符号数运算时,没有溢出 再如: 无符号数:F0H(240) + 88H(136) = 178H(376) 有符号数:F0H(-16) + 88H(-120) = 78H(-136) 376超出了8位数所能表示的范围 -136也超出了8位书所能表示的范围,因此有符号数与无符号数元算时,都产生溢出
第三: 法则: 1.当两个符号相同的数相加,结果的符号与之相反,则OF=1,否则OF=0. 2.当两个符号不同的数相减,结果的符号与减数相同,则OF=1,否则OF=0.
如果是俩个符号相同的值相减。 里面没有标注出来,那么则表示永远不会溢出。 如果俩个符号位都是正的相加,结果为符号位为负,那么则超出! 如果俩个符号位不同,结果的符号位与减数相同,则超出! 如果俩个符号位不同的相加,则永远不会溢出,
关于符号位 正负的判断,请见我的下一篇博客! 希望这点浅薄的理解能对你有用处 本文章转载自五度博客:http://blog.jsx8.com |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |